/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.swing.JOptionPane;
 
/**
 *
 * @author avbravo
 */
public class ContribuyentesBeans {

    Sesion sesion;
    static private String Cedula;
    static private String Contribuyente;
    static private String IdSeguroSocial;
    static private String Ocupacion;
    static private String Nacionalidad = "Panama";
    static private String IdMunicipio;
    static private String IdCorregimiento;
    static private String Domicilio;
    static private String Casa;
    static private String Telefono;
    static private String ApartadoPostal;
    static private String Email;
    static private String Observacion;
    static private String IdMunicipioVive;
    static private String IdCorregimientoVive;
    static private String ProvinciaVive;
    static private String Activo;
    static private String Foto;
    static private int NumeroRegistrosLista = -1;
    static List<String> ListaCedula = new ArrayList<String>();
    static List<String> ListaContribuyente = new ArrayList<String>();
    static List<String> ListaIdCorregimiento = new ArrayList<String>();
    static List<String> ListaCorregimiento = new ArrayList<String>();
    static List<String> ListaTelefono = new ArrayList<String>();
    static private int NumeroRegistrosVehiculosPosee = -1;
    static List<Integer> ListaIdVehiculo = new ArrayList<Integer>();
    static private int NumeroRegistrosRemolquesPosee = -1;
    static List<Integer> ListaIdRemolque = new ArrayList<Integer>();

    public static List<String> getListaTelefono() {
        return ListaTelefono;
    }

    public static void setListaTelefono(List<String> ListaTelefono) {
        ContribuyentesBeans.ListaTelefono = ListaTelefono;
    }

    public static List<String> getListaCorregimiento() {
        return ListaCorregimiento;
    }

    public static void setListaCorregimiento(List<String> ListaCorregimiento) {
        ContribuyentesBeans.ListaCorregimiento = ListaCorregimiento;
    }

    public static List<String> getListaIdCorregimiento() {
        return ListaIdCorregimiento;
    }

    public static void setListaIdCorregimiento(List<String> ListaIdCorregimiento) {
        ContribuyentesBeans.ListaIdCorregimiento = ListaIdCorregimiento;
    }

    public static String getProvinciaVive() {
        return ProvinciaVive;
    }

    public static void setProvinciaVive(String ProvinciaVive) {
        ContribuyentesBeans.ProvinciaVive = ProvinciaVive;
    }

    public static List<Integer> getListaIdRemolque() {
        return ListaIdRemolque;
    }

    public static void setListaIdRemolque(List<Integer> ListaIdRemolque) {
        ContribuyentesBeans.ListaIdRemolque = ListaIdRemolque;
    }

    public static List<Integer> getListaIdVehiculo() {
        return ListaIdVehiculo;
    }

    public static void setListaIdVehiculo(List<Integer> ListaIdVehiculo) {
        ContribuyentesBeans.ListaIdVehiculo = ListaIdVehiculo;
    }

    public static int getNumeroRegistrosRemolquesPosee() {
        return NumeroRegistrosRemolquesPosee;
    }

    public static void setNumeroRegistrosRemolquesPosee(int NumeroRegistrosRemolquesPosee) {
        ContribuyentesBeans.NumeroRegistrosRemolquesPosee = NumeroRegistrosRemolquesPosee;
    }

    public static int getNumeroRegistrosVehiculosPosee() {
        return NumeroRegistrosVehiculosPosee;
    }

    public static void setNumeroRegistrosVehiculosPosee(int NumeroRegistrosVehiculosPosee) {
        ContribuyentesBeans.NumeroRegistrosVehiculosPosee = NumeroRegistrosVehiculosPosee;
    }

    public static int getNumeroRegistrosLista() {
        return NumeroRegistrosLista;
    }

    public static void setNumeroRegistrosLista(int NumeroRegistrosLista) {
        ContribuyentesBeans.NumeroRegistrosLista = NumeroRegistrosLista;
    }

    public static List<String> getListaCedula() {
        return ListaCedula;
    }

    public static void setListaCedula(List<String> ListaCedula) {
        ContribuyentesBeans.ListaCedula = ListaCedula;
    }

    public static List<String> getListaContribuyente() {
        return ListaContribuyente;
    }

    public static void setListaContribuyente(List<String> ListaContribuyente) {
        ContribuyentesBeans.ListaContribuyente = ListaContribuyente;
    }

    public ContribuyentesBeans() {
        sesion = new Sesion();
    }

    public static String getActivo() {
        return Activo;
    }

    public static void setActivo(String Activo) {
        ContribuyentesBeans.Activo = Activo;
    }

    public static String getApartadoPostal() {
        return ApartadoPostal;
    }

    public static void setApartadoPostal(String ApartadoPostal) {
        ContribuyentesBeans.ApartadoPostal = ApartadoPostal;
    }

    public static String getCasa() {
        return Casa;
    }

    public static void setCasa(String Casa) {
        ContribuyentesBeans.Casa = Casa;
    }

    public static String getCedula() {
        return Cedula;
    }

    public static void setCedula(String Cedula) {
        ContribuyentesBeans.Cedula = Cedula;
    }

    public static String getContribuyente() {
        return Contribuyente;
    }

    public static void setContribuyente(String Contribuyente) {
        ContribuyentesBeans.Contribuyente = Contribuyente;
    }

    public static String getDomicilio() {
        return Domicilio;
    }

    public static void setDomicilio(String Domicilio) {
        ContribuyentesBeans.Domicilio = Domicilio;
    }

    public static String getEmail() {
        return Email;
    }

    public static void setEmail(String Email) {
        ContribuyentesBeans.Email = Email;
    }

    public static String getFoto() {
        return Foto;
    }

    public static void setFoto(String Foto) {
        ContribuyentesBeans.Foto = Foto;
    }

    public static String getIdCorregimiento() {
        return IdCorregimiento;
    }

    public static void setIdCorregimiento(String IdCorregimiento) {
        ContribuyentesBeans.IdCorregimiento = IdCorregimiento;
    }

    public static String getIdCorregimientoVive() {
        return IdCorregimientoVive;
    }

    public static void setIdCorregimientoVive(String IdCorregimientoVive) {
        ContribuyentesBeans.IdCorregimientoVive = IdCorregimientoVive;
    }

    public static String getIdMunicipio() {
        return IdMunicipio;
    }

    public static void setIdMunicipio(String IdMunicipio) {
        ContribuyentesBeans.IdMunicipio = IdMunicipio;
    }

    public static String getIdMunicipioVive() {
        return IdMunicipioVive;
    }

    public static void setIdMunicipioVive(String IdMunicipioVive) {
        ContribuyentesBeans.IdMunicipioVive = IdMunicipioVive;
    }

    public static String getIdSeguroSocial() {
        return IdSeguroSocial;
    }

    public static void setIdSeguroSocial(String IdSeguroSocial) {
        ContribuyentesBeans.IdSeguroSocial = IdSeguroSocial;
    }

    public static String getIdUsuario() {
        return IdUsuario;
    }

    public static void setIdUsuario(String IdUsuario) {
        ContribuyentesBeans.IdUsuario = IdUsuario;
    }

    public static String getNacionalidad() {
        return Nacionalidad;
    }

    public static void setNacionalidad(String Nacionalidad) {
        ContribuyentesBeans.Nacionalidad = Nacionalidad;
    }

    public static String getObservacion() {
        return Observacion;
    }

    public static void setObservacion(String Observacion) {
        ContribuyentesBeans.Observacion = Observacion;
    }

    public static String getOcupacion() {
        return Ocupacion;
    }

    public static void setOcupacion(String Ocupacion) {
        ContribuyentesBeans.Ocupacion = Ocupacion;
    }

    public static String getTelefono() {
        return Telefono;
    }

    public static void setTelefono(String Telefono) {
        ContribuyentesBeans.Telefono = Telefono;
    }
    static private String IdUsuario;
    /*
     * Consulta los contribuyentes por cedula
     * devuelve: true si existe
     *           false si no existe o esta inactivo
     */

    public boolean Consultar(String cedula) {

        try {

            if (cedula == null || cedula.equals("")) {
                JOptionPane.showMessageDialog(null, "Ingrese la cedula del contribuyente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from contribuyentes, provinces where idmunicipio = ? and cedula = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, cedula);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            String activo = rs.getString("activo");
            if (activo.equals("no")) {
                JOptionPane.showMessageDialog(null, "Este registro esta inactivo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            setCedula(cedula);
            setContribuyente(rs.getString("contribuyente"));
            setIdSeguroSocial(rs.getString("idsegurosocial"));
            setOcupacion(rs.getString("ocupacion"));
            setNacionalidad(rs.getString("nacionalidad"));
            setIdMunicipio(rs.getString("idmunicipio"));
            setIdCorregimiento(rs.getString("idcorregimiento"));
            setDomicilio(rs.getString("domicilio"));
            setCasa(rs.getString("casa"));
            setTelefono(rs.getString("telefono"));
            setApartadoPostal(rs.getString("apartadopostal"));
            setEmail(rs.getString("email"));
            setObservacion(rs.getString("observacion"));
            setIdMunicipioVive(rs.getString("idmunicipiovive"));
            setIdCorregimientoVive(rs.getString("idcorregimientovive"));
            setActivo(rs.getString("activo"));
            setFoto(rs.getString("foto"));
            sesion.setCedulaContribuyente(getCedula());
            sesion.con.close();
            this.ProvinciaVive = BuscarProvinciaQuePertence(this.IdMunicipioVive);
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. ContribuyentesBeans.Consultar()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public String BuscarProvinciaQuePertence(String LocalidMunicipioVive) {


        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return "";
            }

            String sqlquery = "select provinces.provincia from provinces, municipies where municipies.idmunicipio =?  and provinces.idprovincia = municipies.idprovincia";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, LocalidMunicipioVive);

            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x == 0) {
                JOptionPane.showMessageDialog(null, "no existe una provincia con  ese codigo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return "";
            }

            return rs.getString("provincia");


        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error Cargando Provincias" + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return "";
    }

    /*
     * consulta si existe el contribuyente
     * pero no envia el mensaje si no existe
     *
     */
    public boolean ConsultarSinMensaje(String cedula) {

        try {

            if (cedula == null || cedula.equals("")) {
                //  JOptionPane.showMessageDialog(null, "Ingrese la cedula del contribuyente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from contribuyentes where idmunicipio = ? and cedula = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, cedula);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                //  JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            String activo = rs.getString("activo");
            if (activo.equals("no")) {
                JOptionPane.showMessageDialog(null, "Este registro esta inactivo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            setCedula(cedula);
            setContribuyente(rs.getString("contribuyente"));
            setIdSeguroSocial(rs.getString("idsegurosocial"));
            setOcupacion(rs.getString("ocupacion"));
            setNacionalidad(rs.getString("nacionalidad"));
            setIdMunicipio(rs.getString("idmunicipio"));
            setIdCorregimiento(rs.getString("idcorregimiento"));
            setDomicilio(rs.getString("domicilio"));
            setCasa(rs.getString("casa"));
            setTelefono(rs.getString("telefono"));
            setApartadoPostal(rs.getString("apartadopostal"));
            setEmail(rs.getString("email"));
            setObservacion(rs.getString("observacion"));
            setIdMunicipioVive(rs.getString("idmunicipiovive"));
            setIdCorregimientoVive(rs.getString("idcorregimientovive"));
            setActivo(rs.getString("activo"));
            setFoto(rs.getString("foto"));
            sesion.setCedulaContribuyente(getCedula());
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. ContribuyentesBeans.Consultar()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean VerificarSiExiste() {

        try {

            if (Cedula == null || Cedula.equals("")) {
                //  JOptionPane.showMessageDialog(null, "Ingrese la cedula del contribuyente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from contribuyentes where idmunicipio = ? and cedula = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, Cedula);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                //  JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            String activo = rs.getString("activo");
            if (activo.equals("no")) {
                //     JOptionPane.showMessageDialog(null, "Este registro esta inactivo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            sesion.con.close();
            return true;

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "ContribuyentesBeans.java\nMetodo: VerificarSiExiste()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean Crear() {
        try {

            if (VerificarSiExiste() == true) {
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sql = "INSERT into contribuyentes VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setString(1, Cedula);
            prest.setString(2, Contribuyente);
            prest.setString(3, IdSeguroSocial);
            prest.setString(4, Ocupacion);
            prest.setString(5, Nacionalidad);
            prest.setString(6, sesion.getIdmunicipio());
            prest.setString(7, IdCorregimiento);
            prest.setString(8, Domicilio);
            prest.setString(9, Casa);
            prest.setString(10, Telefono);
            prest.setString(11, ApartadoPostal);
            prest.setString(12, Email);
            prest.setString(13, Observacion);
            prest.setString(14, IdMunicipioVive);
            prest.setString(15, IdCorregimientoVive);
            prest.setString(16, "si");
            java.util.Calendar startDate = GregorianCalendar.getInstance();
            startDate.getTime();

            java.util.Calendar ca = java.util.Calendar.getInstance();
            java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());

            prest.setDate(17, mydate);

            prest.setString(18, sesion.getUsername());
            prest.setString(19, "");

            int count = prest.executeUpdate();
            sesion.setCedulaContribuyente(getCedula());
            sesion.con.close();
            JOptionPane.showMessageDialog(null, "Contribuyente Guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;
        } catch (Exception ex) {

            JOptionPane.showMessageDialog(null, "ContribuyentesBeans.java\nMetodo Crear()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean Actualizar() {
        try {

            if (VerificarSiExiste() == false) {
                return false;
            }

            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "update contribuyentes set contribuyente = ? , idsegurosocial =? , ocupacion =? , nacionalidad =?, idcorregimiento =?, domicilio = ?, casa =?, telefono =?, apartadopostal=?, email =?, observacion =?, idmunicipiovive = ?, idcorregimientovive=? where cedula = ? and idmunicipio =?";
            PreparedStatement prest = sesion.con.prepareStatement(sql);
            prest.setString(1, Contribuyente);
            prest.setString(2, IdSeguroSocial);
            prest.setString(3, Ocupacion);
            prest.setString(4, Nacionalidad);
            prest.setString(5, IdCorregimiento);
            prest.setString(6, Domicilio);
            prest.setString(7, Casa);
            prest.setString(8, Telefono);
            prest.setString(9, ApartadoPostal);
            prest.setString(10, Email);
            prest.setString(11, Observacion);
            prest.setString(12, IdMunicipioVive);
            prest.setString(13, IdCorregimientoVive);
            prest.setString(14, Cedula);
            prest.setString(15, sesion.getIdmunicipio());
            int count = prest.executeUpdate();

            sesion.con.close();
            JOptionPane.showMessageDialog(null, "Contribuyente Actualizado exitosamente", "Actualizado", JOptionPane.INFORMATION_MESSAGE);
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "ContribuyentesBeans.java\nMetodo Actualizar()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    public boolean Eliminar() {
        try {
            if (Consultar(Cedula) == false) {
                return false;
            }

            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }


            String sqlquery = "select count(*) as total from regimencontribuyentes where idmunicipio=? and cedula= ? ";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, Cedula);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int total = rs.getInt("total");

            if (total != 0) {
                JOptionPane.showMessageDialog(null, "Hay regimen de contribuyentes asignados.", "No se puede eliminar", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            //vehiculos
            sqlquery = "select count(*) as total from vehicles where idmunicipio=? and id= ? and tipoid='contribuyentes' ";
            psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, Cedula);
            rs = psquery.executeQuery();
            rs.next();
            total = rs.getInt("total");

            if (total != 0) {
                JOptionPane.showMessageDialog(null, "Hay vehiculos asignados .", "No se puede eliminar", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            //recibosdetalles
            sqlquery = "select count(*) as total from recibes where idmunicipio=? and id= ?  and tipoid='contribuyentes'";
            psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, Cedula);
            rs = psquery.executeQuery();
            rs.next();
            total = rs.getInt("total");

            if (total != 0) {
                JOptionPane.showMessageDialog(null, "Hay recibos  asignados.", "No se puede eliminar", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            //
            int res = JOptionPane.showConfirmDialog(null, "Desea eliminar este contribuyente",
                    "Eliminar Contribuyente ", JOptionPane.YES_NO_OPTION);
            if (res == JOptionPane.YES_OPTION) {

                String sql = "delete from contribuyentes where idmunicipio=? and cedula= ? ";
                PreparedStatement prest = sesion.con.prepareStatement(sql);
                prest.setString(1, sesion.getIdmunicipio());
                prest.setString(2, Cedula);

                prest.executeUpdate();
                sesion.setCedulaContribuyente("");
                sesion.con.close();
                JOptionPane.showMessageDialog(null, "Contribuyente Eliminado exitosamente", "Eliminado", JOptionPane.INFORMATION_MESSAGE);
                return true;
            } else {
                JOptionPane.showMessageDialog(null, "No se elimino el contribuyente.", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

        } catch (Exception ex) {

            JOptionPane.showMessageDialog(null, "ContribuyentesBeans.java\nMetodo Eliminar()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
    /*
     * 
     *Carga la informacion de contribuyentes en las listas 
     * 
     */

    public boolean CargarListadoContribuyentes(String sql) {
        try {
            NumeroRegistrosLista = -1;
            ListaCedula.removeAll(ListaCedula);
            ListaContribuyente.removeAll(ListaContribuyente);
            ListaIdCorregimiento.removeAll(ListaIdCorregimiento);
            ListaCorregimiento.removeAll(ListaCorregimiento);
            ListaTelefono.removeAll(ListaTelefono);
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                JOptionPane.showMessageDialog(null, "No existen registros de contribuyentes con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }

            ListaCedula.add(rs.getString("cedula"));
            ListaContribuyente.add(rs.getString("contribuyente"));
            ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
            ListaCorregimiento.add(rs.getString("corregimiento"));
            ListaTelefono.add(rs.getString("telefono"));
            NumeroRegistrosLista++;

            while (rs.next()) {
                ListaCedula.add(rs.getString("cedula"));
                ListaContribuyente.add(rs.getString("contribuyente"));
                ListaIdCorregimiento.add(rs.getString("idcorregimiento"));
                ListaCorregimiento.add(rs.getString("corregimiento"));
                ListaTelefono.add(rs.getString("telefono"));
                NumeroRegistrosLista++;

            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. ContribuyentesBeans.CargarListadoContribuyentes()", JOptionPane.ERROR_MESSAGE);

        }

        return false;
    }

    /*
     * carga los codigos de vehiculos del contribuyente
     */
    public boolean CargarVehiculosContribuyentes(String cedula) {
        try {
            NumeroRegistrosVehiculosPosee = -1;
            ListaIdVehiculo.removeAll(ListaIdVehiculo);

            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sql = "select idvehiculo from vehicles where  vehicles.idmunicipio ='" + sesion.getIdmunicipio() + "' and vehicles.activo='si' and vehicles.id ='" + cedula + "' and vehicles.tipoid='contribuyentes'";
            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                //JOptionPane.showMessageDialog(null, "No existen registros de vehiculos con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }

            ListaIdVehiculo.add(rs.getInt("idvehiculo"));
            NumeroRegistrosVehiculosPosee++;

            while (rs.next()) {
                ListaIdVehiculo.add(rs.getInt("idvehiculo"));
                NumeroRegistrosVehiculosPosee++;

            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error.CargarVehiculosContribuyentes()", JOptionPane.ERROR_MESSAGE);

        }

        return false;
    }

    public boolean CargarRemolquesContribuyentes(String cedula) {
        try {
            NumeroRegistrosRemolquesPosee = -1;
            ListaIdRemolque.removeAll(ListaIdRemolque);

            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sql = "select idremolque from remolques where  remolques.idmunicipio ='" + sesion.getIdmunicipio() + "' and remolques.activo='si' and remolques.id ='" + cedula + "' and remolques.tipoid='contribuyentes'";
            String sqlquery = sql;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                //JOptionPane.showMessageDialog(null, "No existen registros de remolques con esa cedula", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }

            ListaIdRemolque.add(rs.getInt("idremolque"));
            NumeroRegistrosRemolquesPosee++;

            while (rs.next()) {
                ListaIdRemolque.add(rs.getInt("idremolque"));
                NumeroRegistrosRemolquesPosee++;

            }


            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error.CargarRemolquesContribuyentes()", JOptionPane.ERROR_MESSAGE);

        }

        return false;
    }
} //class

